package 力扣_树算法.树编号;


/**404. 左叶子之和
 * @author zx
 * @create 2022-04-12 11:12
 */
public class    Num404 {
    /**
     * 官方题解还没我的好！！！
     * 关于完全二叉树的节点编号：
     * 若根节点从1开始编号,设父节点的编号为K,则左子树2K,右子树为2K + 1
     * 若根节点从0开始编号,设父节点的编号为K,则左子树为2k + 1,右子树为2k + 2
     */
    int res = 0;
    public int sumOfLeftLeaves(TreeNode root) {
        return sum(root,1);
    }
    private int sum(TreeNode root, int index){
        if(root == null){
            return 0;
        }
        sum(root.left,index * 2);
        sum(root.right,index * 2 + 1);
        if(root.left == null && root.right == null && index % 2 == 0){
            res += root.val;
        }
        return res;
    }
}
